package com.boss.salary.service;

import com.boss.common.entity.PageDTO;
import com.boss.framework.dto.PaginationDTO;
import com.boss.salary.entity.BaseData;
import com.boss.sys.ca.user.dto.UserDTO;
import com.singularsys.jep.JepException;

import java.lang.reflect.InvocationTargetException;
import java.util.List;
import java.util.Map;

public interface IBaseDataService {
    /**
     * 获取人员工资类型
     *
     * @param paginationDTO
     * @param queryParam
     * @return
     */
    PageDTO<BaseData> querySalaryTypeBaseDataPage(PaginationDTO paginationDTO, Map<String, Object> queryParam);

    /**
     * 新增人员工资类型
     *
     * @param baseData
     * @param userDTO
     */
    void saveSalaryTypeBaseData(BaseData baseData, UserDTO userDTO) throws Exception;

    /**
     * 修改工资类型
     *
     * @param baseData
     * @param userDTO
     */
    void updateSalaryTypeBaseData(BaseData baseData, UserDTO userDTO);

    /**
     * @param basedataList
     * @param userDTO
     * @throws NoSuchMethodException
     * @throws InvocationTargetException
     * @throws IllegalAccessException
     * @throws JepException
     */
    void submitSalaryTypeBaseData(List<BaseData> basedataList,UserDTO userDTO) throws Exception;

    void deleteSalaryType(BaseData baseData, UserDTO userDTO);
}